"""
您可以通过JSON字符串传入文档的内容、类型、名称与标题，使模型在本轮对话中可以参考这些信息。
JSON格式的文档信息需要按照文档内容（content）、文档类型（file_type）、文档名称（filename）、
文档标题（title）的格式进行组织。请先将结构化的文档信息转换为JSON 字符串，再输入System Message中。
"""
import os
import json
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # 替换成真实DashScope的API_KEY，如已配置API-KEY到环境变量请使用变量名（推荐）
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",  # 填写DashScope服务endpoint
)

file_info = {
    # 全文内容省略，只做格式示意
    'content': '百炼X1 —— 畅享极致视界：搭载6.7英寸1440 x 3200像素超清屏幕，搭配120Hz刷新率...',
    'file_type': 'docx',
    'filename': '百炼系列手机产品介绍',
    'title': '百炼手机产品介绍'
}

completion = client.chat.completions.create(
    model="qwen-long",
    messages=[
        {'role': 'system', 'content': 'You are a helpful assistant.'},
        # 通过json.dumps方法将JSON object转化为字符串
        {'role': 'system', 'content': json.dumps(file_info, ensure_ascii=False)},
        {'role': 'user', 'content': '文章讲了什么？'}
    ],
    stream=True
)
full_content = ""
for chunk in completion:
    if chunk.choices and chunk.choices[0].delta.content:
        full_content += chunk.choices[0].delta.content
        print(chunk.model_dump())

print({full_content})